Restore top-level GPU test lane; drop vestigial AlgConvergence_II group#3813
Merged
ChrisRackauckas merged 1 commit intoJul 3, 2026
Merged
Conversation
The root package's GPU test lane was dropped during the pre-centralization sublibrary split (2026-03-18) and never re-added to the grouped-tests matrix, so `test/gpu/` became orphaned dead code -- nothing includes it and `test/runtests.jl` has no GPU group. Root-level GPU tests are integration tests (the `test/gpu` environment pulls the full OrdinaryDiffEq stack + the BDF/NonlinearSolve/RKIP/ Rosenbrock sublibraries via [sources]), distinct from the per-sublibrary GPU tests, so restore a top-level lane: - test/test_groups.toml: add a `[GPU]` group (`versions = ["1"]`, `runner = ["self-hosted","Linux","X64","gpu"]`, `timeout = 60`), matching the sublibrary GPU groups. - test/runtests.jl: add `activate_gpu_env()` + `gpu_group()` (develop the root package, activate test/gpu, include every `test/gpu/*.jl` under an isolated `@safetestset`) and wire `"GPU" => gpu_group` into the run_tests groups. Files are globbed so the set stays in sync as GPU tests are added/removed there. Also drop `[AlgConvergence_II]` from test/test_groups.toml: it was introduced by the matrix migration (SciML#3730) but never had a folder, a thunk, or any tests, so it only spawned no-op CI jobs. Note: GPU tests execute only on the self-hosted `gpu` runner; they cannot be run in a CPU CI/dev environment. Validated locally: runtests.jl parses, the matrix emits the GPU cell, and the group-include mechanism runs isolated @safetestsets. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Restores a top-level GPU test lane to the root package and drops a vestigial test group.
The gap (answers "the top-level GPU run is missing")
During the pre-centralization sublibrary split (2026-03-18, commits
2fe7abbe2+f803bdf53), root GPU tests were moved into the sublibraries and thegroup: GPUblock was deleted from the rootCI.yml. The centralized-matrix migration (#3730) then reproduced the then-current no-GPU matrix. Result:test/gpu/at the root is orphaned dead code — nothing includes it,test/runtests.jlhas no GPU group, and its files are stale duplicates. So e.g. the GPU DAE tests added in #3073 (which edittest/gpu/) never run.Root-level GPU tests are integration tests — the
test/gpuenvironment pulls the fullOrdinaryDiffEqstack plus the BDF/NonlinearSolve/RKIP/Rosenbrock sublibraries via[sources]— so a top-level lane is meaningful (distinct from the per-sublibrary GPU groups).Changes
test/test_groups.toml: add[GPU](versions = ["1"],runner = ["self-hosted","Linux","X64","gpu"],timeout = 60), matching the sublibrary GPU groups.test/runtests.jl: addactivate_gpu_env()+gpu_group()(develop the root package, activatetest/gpu, include everytest/gpu/*.jlunder an isolated@safetestset) and wire"GPU" => gpu_group. Files are globbed so the set stays in sync as GPU tests are added/removed (so Fix GPU compat of sparse dae solvers #3073'sdae_tests.jlruns automatically once merged).[AlgConvergence_II]fromtest/test_groups.toml: introduced by the matrix migration (CI: convert root test matrix to grouped-tests.yml (test/test_groups.toml) #3730) but it never had a folder, thunk, or any tests — it only spawned no-op CI jobs.Validation
runtests.jlparses;test_groups.tomlemits theGPUcell and no longer emitsAlgConvergence_II; the glob +@safetestsetinclude mechanism runs isolated testsets.gpurunner — I cannot run CUDA locally, so the actual GPU test results will come from CI on this PR. Some roottest/gpu/files are stale (diverged from their sublibrary copies); turning the lane on will surface any that need updating (that's coordinated with Fix GPU compat of sparse dae solvers #3073, which refreshes the DAE GPU tests).Draft — ignore until reviewed by @ChrisRackauckas.